﻿#define _CRT_SECURE_NO_WARNINGS 1


#include <iostream>
using namespace std;

const int MAX_N = 1001;

int cnt_x[MAX_N][MAX_N] = { 0 }; // 沿x轴的线，索引为(y, z)
int cnt_y[MAX_N][MAX_N] = { 0 }; // 沿y轴的线，索引为(x, z)
int cnt_z[MAX_N][MAX_N] = { 0 }; // 沿z轴的线，索引为(x, y)
int total = 0;

int main() 
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int N, Q;
    cin >> N >> Q;

    while (Q--) {
        int x, y, z;
        cin >> x >> y >> z;

        // 处理沿x轴的线(y, z)
        cnt_x[y][z]++;
        if (cnt_x[y][z] == N) {
            total++;
        }

        // 处理沿y轴的线(x, z)
        cnt_y[x][z]++;
        if (cnt_y[x][z] == N) {
            total++;
        }

        // 处理沿z轴的线(x, y)
        cnt_z[x][y]++;
        if (cnt_z[x][y] == N) {
            total++;
        }

        cout << total << '\n';
    }

    return 0;
}
